From ca5c68f1605b1f426e5d379db0167e2e55393389 Mon Sep 17 00:00:00 2001 From: Alberto Ruiz Date: Sun, 16 Mar 2008 01:37:12 +0000 Subject: [PATCH] The child is now aware of both the combobox and frame (if has-frame is 2008-16-03 Alberto Ruiz * gtl/gtkcombobox.c: (gtk_combo_box_size_allocate) The child is now aware of both the combobox and frame (if has-frame is set) thickness and border. (bug #521442) svn path=/trunk/; revision=19886 --- ChangeLog | 5 +++++ gtk/gtkcombobox.c | 50 ++++++++++++++++++++++++++--------------------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index b278b33d77..e0d6b34850 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-16-03 Alberto Ruiz + + * gtl/gtkcombobox.c: (gtk_combo_box_size_allocate) The child is now aware of + both the combobox and frame (if has-frame is set) thickness and border. (bug #521442) + 2008-03-15 Andre Klapper * configure.in: Added "si" to ALL_LINGUAS. diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index 1828ceca3a..3db35f2431 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -2284,6 +2284,10 @@ gtk_combo_box_size_allocate (GtkWidget *widget, { /* list mode */ + /* Combobox thickness + border-width */ + int delta_x = shadow_width + GTK_CONTAINER (widget)->border_width; + int delta_y = shadow_height + GTK_CONTAINER (widget)->border_width; + /* button */ GTK_COMBO_BOX_SIZE_ALLOCATE_BUTTON @@ -2292,38 +2296,40 @@ gtk_combo_box_size_allocate (GtkWidget *widget, child.x = allocation->x + req.width; else child.x = allocation->x; + child.y = allocation->y; child.width = allocation->width - req.width; child.height = allocation->height; if (priv->cell_view_frame) { - child.width = MAX (1, child.width); - child.height = MAX (1, child.height); + child.x += delta_x; + child.y += delta_y; + child.width = MAX (1, child.width - delta_x * 2); + child.height = MAX (1, child.height - delta_y * 2); gtk_widget_size_allocate (priv->cell_view_frame, &child); /* the sample */ - if (priv->has_frame) - { - child.x += - GTK_CONTAINER (priv->cell_view_frame)->border_width + - GTK_WIDGET (priv->cell_view_frame)->style->xthickness; - child.y += - GTK_CONTAINER (priv->cell_view_frame)->border_width + - GTK_WIDGET (priv->cell_view_frame)->style->ythickness; - child.width -= 2 * ( - GTK_CONTAINER (priv->cell_view_frame)->border_width + - GTK_WIDGET (priv->cell_view_frame)->style->xthickness); - child.height -= 2 * ( - GTK_CONTAINER (priv->cell_view_frame)->border_width + - GTK_WIDGET (priv->cell_view_frame)->style->ythickness); - } + if (priv->has_frame) + { + delta_x = GTK_CONTAINER (priv->cell_view_frame)->border_width + + GTK_WIDGET (priv->cell_view_frame)->style->xthickness; + delta_y = GTK_CONTAINER (priv->cell_view_frame)->border_width + + GTK_WIDGET (priv->cell_view_frame)->style->ythickness; + + child.x += delta_x; + child.y += delta_y; + child.width -= delta_x * 2; + child.height -= delta_y * 2; + } + } + else + { + child.x += delta_x; + child.y += delta_y; + child.width -= delta_x * 2; + child.height -= delta_y * 2; } - - child.x += shadow_width; - child.y += shadow_height; - child.width -= shadow_width * 2; - child.height -= shadow_height * 2; child.width = MAX (1, child.width); child.height = MAX (1, child.height); -- 2.30.2